This is KEY! Event handlers in ColdBox are cached by default so no unnecessary object creations occur. Therefore, your code within the event handler functions MUST be thread safe and var scoped. This is essential and key for ANY framework or ANY ColdFusion Component declaration, ALWAYS ALWAYS var scope. I cannot stress the importance of having to var scope your ColdFusion component method calls. I see this time and time again and we need to educated ourselves about it and also create a habit of ALWAYS var scoping our variables within function declarations. What do you think?
Blog
This is KEY! Event handlers in ColdBox are cached by default so no unnecessary object creations occur. Therefore, your code within the event handler functions MUST be thread safe and var scoped. This is essential and key for ANY framework or ANY ColdFusion Component declaration, ALWAYS ALWAYS var scope. I cannot stress the importance of having to var scope your ColdFusion component method calls. I see this time and time again and we need to educated ourselves about it and also create a habit of ALWAYS var scoping our variables within function declarations. What do you think?
Recent Entries
Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring
Spring Boot developers know the pain of evaluating view technologies. Thymeleaf is great — until you need more expressiveness. FreeMarker is powerful — until the syntax fights you. What if you could write templates in a dynamic JVM language that gives you the full power of the platform, feels natural, and requires zero setup to integrate?
Meet the BoxLang Spring Boot Starter.
Why Swiss Banks Are Modernizing CFML Platforms Without Rewrites
The growing need to evolve legacy financial platforms safely
Many Swiss banks and financial institutions still operate important systems built on ColdFusion and CFML platforms.
These systems manage a wide range of functions, including:
- internal banking workflows
- reporting systems
- client portals
- data integration platforms
- compliance and risk management tools
In many cases, thes...
Reactive vs Proactive ColdFusion Support: Why Waiting for an Outage Is the Most Expensive Strategy
Many ColdFusion environments operate in a reactive mode without realizing it.
Everything seems fine… until something breaks.
A server crashes.
Performance drops suddenly.
An integration stops working.
A security audit reveals missing patches.
At that point the response is urgent:
“Can someone help us fix this now?”
Emergency support is sometimes unavoidable. But when reactive intervention becomes the norm, it usually means something deep...
Add Your Comment
(3)
Sep 24, 2010 17:49:38 UTC
by Adrian J. Moreno
A few links with more information on var scoping:
My blog: http://www.iknowkungfoo.com/blog/index.cfm/2007/8/22/Object-Oriented-Coldfusion--4--The-var-scope
Dave Shuck: http://daveshuck.instantspot.com/blog/2006/11/28/Thread-safety-example--Var-scope-your-loop-index-in-ColdFusion-CFCs
Tyson Vanek: http://www.webapper.net/index.cfm/2007/2/9/The-REAL-reason-you-need-to-varscope-your-local-CFC-function-variables
Sep 30, 2010 10:28:54 UTC
by Allen
Not to be trite but the var keyword is a keyword, not a scope. Most of know that but I'd hate to see a newbie get confused.
Do you have some example code for a handler or controller that would help illustrate this?
And is there any reason if we're running CF9 why we shouldn't use the local scope in these situations?
TIA!
Sep 30, 2010 10:35:10 UTC
by Luis Majano
@Allen,
In cf9 you don't have to var scope if you use the local scope as that puts the variables in the local function scope. To me that is a matter of preference, like what color you like? They both achieve the same results.
Some example handler code of NOT var scoping:
function doThis(event){ rc = event.getCollection();
rc.data = service.getData(); }